import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    // 是否是全面屏，兼容全面屏
    isBigScreen: false,
    // 当前所在楼层
    nowFloor: null,
    // 全局所需地图信息
    mapConfig: null,
    // 是否显示搜索主体页
    isShowSearchContent: false,
    // 模糊搜索匹配结果
    searchResultsArr: [],
    // 输入框图标是搜索图标还是返回图标
    isBackOrSearch: false,
    // 是否显示模糊搜索结果页
    isShowFuzzySearchPart: false,
    // 模糊搜索结果为空的情况
    searchResultNoList: false,
    // 搜索框需要显示的值
    searchInputVal: '',
    // 搜索历史记录数据数组
    searchHistoryRecordList: [],
    // 是否显示历史记录搜索详情
    isShowRecordInfo: false,
    // 是否显示设置起点终点模块
    isShowSetPoint: false,
    // 点击区块店铺信息
    clickAreaName: '',
    // 点击区块楼层
    clickAreaFloorname: '',
    // 点击区块的区块信息
    clickData: {},
    // 是否显示引导寻路页
    isShowGuidedSearchPathPart: false,
    // 是否显示寻路信息页
    isShowOperation: false,
    // 是否显示搜索输入框
    isShowSearchInput: true,
    // 是否开始模拟导航
    isStartMoGo: false,
    // 是否显示语音识别模块
    isShowSpeechRecognition: false,

    // audio控件dom
    audio: null,
    // 是否显示分享部分组件
    isShowShareMap: false,
    // 是否展示区块信息部分
    isShowAreaInfo: false,
  },
  mutations: {
    // 是否是全面屏
    updateIsBigScreen(state, isOrNot) {
      state.isBigScreen = isOrNot;
    },
    // 更新当前显示楼层
    updateNowFloor(state, nowData) {
      state.nowFloor = nowData;
    },
    // 全局所需地图信息
    initMapDataDetails(state, mapData) {
      state.mapConfig = mapData;
    },
    // 保存点击区块信息
    saveClickData(state, clickData) {
      state.clickData.nodeID = clickData.nodeID;
      state.clickData.floorID = clickData.floorID;
    },
    // 更新是否显示搜索主体页
    updateIsShowSearchContent(state, isOrNot) {
      state.isShowSearchContent = isOrNot
    },
    // 更新模糊搜索匹配结果数组
    updateSearchResultsArr(state, newArr) {
      state.searchResultsArr = newArr
    },
    // 更新输入框图标是搜索图标还是返回图标
    updateIsBackOrSearch(state, isOrNot) {
      state.isBackOrSearch = isOrNot
    },
    // 更新是否显示模糊搜索结果页
    updateIsShowFuzzySearchPart(state, isOrNot) {
      state.isShowFuzzySearchPart = isOrNot
    },
    // 模糊搜索结果为空
    fuzzySearchHasNoResult(state, isOrNot) {
      state.searchResultNoList = isOrNot
    },
    // 更新输入框内容
    updataSearchInputVal(state, newVal) {
      state.searchInputVal = newVal
    },
    // 更新搜索历史记录数组
    updateSearchHistoryRecordList(state, newList) {
      if (newList === true) {
        state.searchHistoryRecordList = []
      } else {
        state.searchHistoryRecordList.push(newList)
      }

    },
    // 更新是否显示历史记录细节信息
    updateIsShowRecordInfo(state, isOrNot) {
      state.isShowRecordInfo = isOrNot
    },
    // 更新是否显示设置起点终点页
    updateIsShowSetPoint(state, isOrNot) {
      state.isShowSetPoint = isOrNot
    },
    // 更新点击区块店铺名称以及所在楼层信息
    updateAreaData(state, areaObj) {
      state.clickAreaFloorname = areaObj.clickAreaFloorname,
        state.clickAreaName = areaObj.clickAreaName
    },
    // 更新是否显示引导寻路页
    updateIsShowGuidedSearchPathPart(state, isOrNot) {
      state.isShowGuidedSearchPathPart = isOrNot
    },
    // 更新是否显示寻路信息页
    updateIsShowOperation(state, isOrNot) {
      state.isShowOperation = isOrNot
    },
    // 更新是否显示搜索输入框
    updateIsShowSearchInput(state, isOrNot) {
      state.isShowSearchInput = isOrNot
    },
    // 更新是否开始了模拟导航
    updateIsStartMoGo(state, isOrNot) {
      state.isStartMoGo = isOrNot
    },
    // 更新是否显示语音识别模块
    updateIsShowSpeechRecognition(state, isOrNot) {
      state.isShowSpeechRecognition = isOrNot;
    },
    // 储存audioDOM
    saveAudioDom(state, dom) {
      state.audio = dom;
    },
    // 更新是否显示分享部分组件
    updateIsShowShareMap(state, isOrNot) {
      state.isShowShareMap = isOrNot
    },
    // 更新是否显示区块信息展示组件
    updateIsShowAreaInfo(state, isOrNot) {
      state.isShowAreaInfo = isOrNot;
    }
  },
  actions: {}
});